file: API Changes


list: [1.5] - 2019-11-08 21:27:50
T-Scenario major update.

Added::
- <Common> module, run on both game & UI scripts.
- <Common.WeaponOption> class for modifying weapon performances and statistics.
- <Game.Entity> base class for derivative game entity classes.
- <Game.Monster> class for handling monster entities, inherit from <Game.Entity> base class.
- <Game.Weapon> class for handling player weapon entities.
- <Game.GetEntity> method to retrieve an entity instance with given entity index.
- <Game.RandomInt> & <Game.RandomFloat> method for random number generator.
- <Game.KillAllMonsters> method, kill all monsters.
- <Game.ENTITYTYPE>, <Game.MONSTERTYPE>, <Game.RENDERFX>, <Game.WEAPONCOLOR>, <Game.THIRDPERSON_FIXED_PLANE> table.
- <Game.Rule.OnRoundStartFinished> event, called when the round freeze time is over.
- <Game.Rule.OnPlayerJoiningSpawn> event, called when the player is spawned for first time.
- <Game.Rule.OnLoadGameSave> event, called when game save data is loaded/imported.
- <Game.Rule.OnClearGameSave> event, called when game save data is cleared.
- <Game.Rule.OnTakeDamage> event, called when the entity takes damage.
- <Game.Rule.OnKilled> event, called when the entity is killed.
- <Game.Rule.CanBuyWeapon> event, called when player is about to buy a weapon in weapon shop menu.
- <Game.Rule.CanHaveWeaponInHand> event, called when player is about to pickup a weapon entity.
- <Game.Rule.OnGetWeapon> event, called when player pickups a weapon entity.
- <Game.Rule.OnSwitchWeapon> event, called when player has switched current weapon to another weapon.
- <Game.Rule.PostFireWeapon> event, called when player fired current weapon.
- <Game.Rule.OnReload> event, called when player reload the weapon ammo.
- <Game.Rule.PostFireWeapon> event, called when player has finished reload the weapon ammo.
- <Game.Player.gravity> field, to change player's gravity.
- <Game.Player.infiniteclip> field, to enable/disable infinite ammo supply.
- Changing player's camera perspective with <Game.Player.SetFirstPersonView>, <Game.Player.SetThirdPersonView>, and <Game.Player.SetThirdPersonFixedView> method.
- <Game.Player.SetThirdPersonFixedPlane> method, to change mouse pointer raycasting when fixed third-person camera is being used.
- New weapon inventory system, can be game saved, introducing <Game.Player.GetWeaponInvenList>, <Game.Player.SetWeaponInvenLockedUI>, <Game.Player.ShowWeaponInven>, <Game.Player.ToggleWeaponInven>, & <Game.Player.ClearWeaponInven> method.
- Retrieve player's current weapons with <Game.Player.GetPrimaryWeapon> & <Game.Player.GetSecondaryWeapon> method.
- Activate Zombie Scenario-style UI with <Game.Player.SetBuymenuLockedUI> method.
- <Game.Player.SetBuymenuLockedUI> method to customize weapon shopping menu appearance.
- Sending UI signals from server with <Game.Player.Signal> method & <UI.Event.OnSignal> event.
- New key input events, <UI.Event.OnKeyDown> & <UI.Event.OnKeyUp>.

Changed::
- Due to new addition of <Game.Entity> base class, some of <Game.Player>'s fields are moved to there, and inherit from that base class.


list: [1.4]
Implemented game save API.

Added::
- <Game.Rule.CanSave> method for checking whether game saving is supported for current map.
- Load & save shared game save data with <Game.Rule.SetGameSave> & <Game.Rule.GetGameSave> method.
- Load & save player's game save data with <Game.Player.SetGameSave> & <Game.Player.GetGameSave> method.
- Hooking on game save loading event with <Game.Rule.OnReceiveGameSave> event.
- Hooking on game saving event with <Game.Rule.OnGameSave> event.


list: [1.3]
Added::
- Added aksha zombie models into <Game.MODEL> table (<Game.MODEL.AKSHA_ZOMBIE> & <Game.MODEL.AKSHA_ZOMBIE_HOST>).

Fixed::
- Fixed typo in <UI.SyncValue.value>.


list: [1.2]
Added::
- Hooking on new round started event with <Game.Rule.OnRoundStart> & <UI.Event.OnRoundStart> event.

Fixed::
- Fixed an issue where the script was restarted at the next round start after changing <Game.Player.team> field and calling <Game.Player.Win> method.


list: [1.1]
Added::
- <Game.SetTrigger> method for (de)activating `Device Control Script` blocks.
- <Game.GetTriggerEntity> & <Game.GetScriptCaller> for global functions called by `Function Caller` block.
- <Game.WEAPONTYPE>, <Game.HITBOX> table.
- Changing the player's team via <Game.Player.team> field.
- Changing the player's stiffness when taken damage via <Game.Player.flinch> field.
- Changing the player's knockback when taken damage via <Game.Player.knockback> field.
- Changing the player's model via <Game.Player.model> field.
- Hooking player's on take damage event with <Game.Rule.OnPlayerAttack> event.
- Retrieve the player's entity index in UI scripts with <UI.PlayerIndex> method.
- Retrieve the UI object's configuration via <UI.Box.Get> & <UI.Text.Get> method.
- Retrieve the engine time with <Game.GetTime> & <UI.GetTime> method.
- `Function Caller` block to call global functions declared inside of game scripts.

Changed::
- Added `weapontype` and `hitbox` argument on <Game.Rule.OnPlayerKilled> event.
- Added `exit` argument on both <Game.Rule.Win> & <Game.Player.Win> method to terminate the game on the next round start.

Fixed::
- Players can properly programmatically respawned with <Game.Player.Respawn> method in <Game.Rule.OnPlayerKilled> event.


list: [1.0]
- First release.

